package com.gzx.qc.modular.check.vo;

import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import com.gzx.qc.modular.check.entity.GzxCallCheck;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import vip.xiaonuo.common.sensitive.annotation.Sensitive;
import vip.xiaonuo.common.sensitive.core.SensitiveStrategy;

/**
 * @author zjt
 * @description
 * @date 2025/7/29 15:29
 */
@Data
@AutoMapper(target = GzxCallCheck.class)
public class GzxCallCheckVo implements TransPojo {
    /**
     * 自增主键
     */
    private String id;

    /**
     * 通话序列号
     */
    private String callId;

    /**
     * 通话类型
     */
    @Trans(type = TransType.DICTIONARY, key = "TalkType")
    private Integer callType;

    /**
     * 被叫号码
     */
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String callee;

    /**
     * 通话时长
     */
    private Integer callDuration;

    /**
     * 坐席账号
     */
    private String agentNum;

    /**
     * 坐席姓名
     */
    private String userName;

    /**
     * 所属公司ID
     */
    @Trans(type = TransType.RPC, targetClassName = "vip.xiaonuo.sys.modular.org.entity.SysOrg", fields = "name", alias = "deptId", ref = "deptName", serviceName = "snowy-web-app")
    private Long deptId;

    private String deptName;

    /**
     * 质检命中所有关键字
     */
    private String keyword;


    /**
     * AI审核状态(默认0)
     */
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String aiReviewStatus;

    /**
     * AI审核结果
     */
    private String aiReviewResult;

    /**
     * 分公司审核状态(默认0)
     */
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String branchReviewStatus;

    /**
     * 总部审核状态(默认0)
     */
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String hqReviewStatus;

    /**
     * 终审状态(默认0)
     */
    @Trans(type = TransType.DICTIONARY, key = "voiceCheckStatus")
    private String finalReviewStatus;

    /**
     * 录音地址
     */
    private String fileUrl;
}
